package ca.nanometrics.gflot.sample.client;

import ca.nanometrics.gflot.client.Axis;
import ca.nanometrics.gflot.client.DataPoint;
import ca.nanometrics.gflot.client.PlotModel;
import ca.nanometrics.gflot.client.Series;
import ca.nanometrics.gflot.client.SeriesHandler;
import ca.nanometrics.gflot.client.SimplePlot;
import ca.nanometrics.gflot.client.event.PlotHoverListener;
import ca.nanometrics.gflot.client.event.PlotItem;
import ca.nanometrics.gflot.client.event.PlotPosition;
import ca.nanometrics.gflot.client.jsni.Plot;
import ca.nanometrics.gflot.client.options.AbstractAxisOptions.AxisPosition;
import ca.nanometrics.gflot.client.options.AxisOptions;
import ca.nanometrics.gflot.client.options.GridOptions;
import ca.nanometrics.gflot.client.options.LegendOptions;
import ca.nanometrics.gflot.client.options.LegendOptions.LegendPosition;
import ca.nanometrics.gflot.client.options.PlotOptions;
import ca.nanometrics.gflot.client.options.TickFormatter;
import ca.nanometrics.gflot.client.options.TimeSeriesAxisOptions;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;

/**
 * @author Nicolas Morel
 */
public class MultipleAxesExample
    implements GFlotExample
{

    public Widget createExample()
    {

        PlotModel model = new PlotModel();
        PlotOptions plotOptions = new PlotOptions();

        plotOptions.setGridOptions( new GridOptions().setHoverable( true ) );
        plotOptions.setLegendOptions( new LegendOptions().setPosition( LegendPosition.SOUTH_WEST ) );

        // add tick formatter to the options
        plotOptions.addXAxisOptions( new TimeSeriesAxisOptions() );
        plotOptions.addYAxisOptions( new AxisOptions().setMinimum( 0 ) );
        plotOptions.addYAxisOptions( new AxisOptions().setAlignTicksWithAxis( 1 ).setPosition( AxisPosition.RIGHT ).setTickDecimals( 3 )
            .setTickFormatter( new TickFormatter()
            {
                @Override
                public String formatTickValue( double tickValue, Axis axis )
                {
                    double round = Math.pow( 10, axis.getTickDecimals() );
                    return ( Math.round( tickValue * round ) / round ) + "\u20ac";
                }
            } ) );

        // create a series
        SeriesHandler oilPrices = model.addSeries( "Oil price ($)" );
        addOilPricesData( oilPrices );

        SeriesHandler exchangeRates = model.addSeries( new Series( "USD/EUR exchange rate" ).setYAxis( 2 ) );
        addExchangeRatesDate( exchangeRates );

        // create the plot
        final SimplePlot plot = new SimplePlot( model, plotOptions );

        // put it on a panel
        FlowPanel panel = new FlowPanel();
        panel.add( plot );

        final Label labelPosition = new Label( "position:" );
        panel.add( labelPosition );

        // add hover listener
        plot.addHoverListener( new PlotHoverListener()
        {
            public void onPlotHover( Plot plot, PlotPosition position, PlotItem item )
            {
                if ( position != null )
                {
                    labelPosition.setText( "position: (x=" + position.getX() + ", y1=" + position.getY() + ", y2=" + position.getY( 2 ) + ")" );
                }
            }
        }, false );

        panel
            .add( new HTML(
                "<p>Multiple axis support showing the raw oil price in US $/barrel of crude oil vs. the exchange rate from US $ to €.</p><p>As illustrated, you can put in multiple axes if you need to. For each data series, simply specify the axis number. In the options, you can then configure where you want the extra axes to appear.</p>" ) );

        HorizontalPanel toolbarPanel = new HorizontalPanel();
        toolbarPanel.setSpacing( 5 );
        toolbarPanel.setVerticalAlignment( HasVerticalAlignment.ALIGN_MIDDLE );
        toolbarPanel.add( new Label( "Position axis" ) );
        Button left = new Button( "left" );
        toolbarPanel.add( left );
        toolbarPanel.add( new Label( "or" ) );
        Button right = new Button( "right" );
        toolbarPanel.add( right );

        left.addClickHandler( new ClickHandler()
        {
            @Override
            public void onClick( ClickEvent event )
            {
                plot.getPlotOptions().getYAxisOptions( 2 ).setPosition( AxisPosition.LEFT );
                plot.redraw();
            }
        } );

        right.addClickHandler( new ClickHandler()
        {
            @Override
            public void onClick( ClickEvent event )
            {
                plot.getPlotOptions().getYAxisOptions( 2 ).setPosition( AxisPosition.RIGHT );
                plot.redraw();
            }
        } );

        panel.add( toolbarPanel );

        return panel;
    }

    private void addExchangeRatesDate( SeriesHandler exchangeRates )
    {
        exchangeRates.add( new DataPoint( 1167606000000d, 0.7580 ) );
        exchangeRates.add( new DataPoint( 1167692400000d, 0.7580 ) );
        exchangeRates.add( new DataPoint( 1167778800000d, 0.75470 ) );
        exchangeRates.add( new DataPoint( 1167865200000d, 0.75490 ) );
        exchangeRates.add( new DataPoint( 1167951600000d, 0.76130 ) );
        exchangeRates.add( new DataPoint( 1168038000000d, 0.76550 ) );
        exchangeRates.add( new DataPoint( 1168124400000d, 0.76930 ) );
        exchangeRates.add( new DataPoint( 1168210800000d, 0.76940 ) );
        exchangeRates.add( new DataPoint( 1168297200000d, 0.76880 ) );
        exchangeRates.add( new DataPoint( 1168383600000d, 0.76780 ) );
        exchangeRates.add( new DataPoint( 1168470000000d, 0.77080 ) );
        exchangeRates.add( new DataPoint( 1168556400000d, 0.77270 ) );
        exchangeRates.add( new DataPoint( 1168642800000d, 0.77490 ) );
        exchangeRates.add( new DataPoint( 1168729200000d, 0.77410 ) );
        exchangeRates.add( new DataPoint( 1168815600000d, 0.77410 ) );
        exchangeRates.add( new DataPoint( 1168902000000d, 0.77320 ) );
        exchangeRates.add( new DataPoint( 1168988400000d, 0.77270 ) );
        exchangeRates.add( new DataPoint( 1169074800000d, 0.77370 ) );
        exchangeRates.add( new DataPoint( 1169161200000d, 0.77240 ) );
        exchangeRates.add( new DataPoint( 1169247600000d, 0.77120 ) );
        exchangeRates.add( new DataPoint( 1169334000000d, 0.7720 ) );
        exchangeRates.add( new DataPoint( 1169420400000d, 0.77210 ) );
        exchangeRates.add( new DataPoint( 1169506800000d, 0.77170 ) );
        exchangeRates.add( new DataPoint( 1169593200000d, 0.77040 ) );
        exchangeRates.add( new DataPoint( 1169679600000d, 0.7690 ) );
        exchangeRates.add( new DataPoint( 1169766000000d, 0.77110 ) );
        exchangeRates.add( new DataPoint( 1169852400000d, 0.7740 ) );
        exchangeRates.add( new DataPoint( 1169938800000d, 0.77450 ) );
        exchangeRates.add( new DataPoint( 1170025200000d, 0.77450 ) );
        exchangeRates.add( new DataPoint( 1170111600000d, 0.7740 ) );
        exchangeRates.add( new DataPoint( 1170198000000d, 0.77160 ) );
        exchangeRates.add( new DataPoint( 1170284400000d, 0.77130 ) );
        exchangeRates.add( new DataPoint( 1170370800000d, 0.76780 ) );
        exchangeRates.add( new DataPoint( 1170457200000d, 0.76880 ) );
        exchangeRates.add( new DataPoint( 1170543600000d, 0.77180 ) );
        exchangeRates.add( new DataPoint( 1170630000000d, 0.77180 ) );
        exchangeRates.add( new DataPoint( 1170716400000d, 0.77280 ) );
        exchangeRates.add( new DataPoint( 1170802800000d, 0.77290 ) );
        exchangeRates.add( new DataPoint( 1170889200000d, 0.76980 ) );
        exchangeRates.add( new DataPoint( 1170975600000d, 0.76850 ) );
        exchangeRates.add( new DataPoint( 1171062000000d, 0.76810 ) );
        exchangeRates.add( new DataPoint( 1171148400000d, 0.7690 ) );
        exchangeRates.add( new DataPoint( 1171234800000d, 0.7690 ) );
        exchangeRates.add( new DataPoint( 1171321200000d, 0.76980 ) );
        exchangeRates.add( new DataPoint( 1171407600000d, 0.76990 ) );
        exchangeRates.add( new DataPoint( 1171494000000d, 0.76510 ) );
        exchangeRates.add( new DataPoint( 1171580400000d, 0.76130 ) );
        exchangeRates.add( new DataPoint( 1171666800000d, 0.76160 ) );
        exchangeRates.add( new DataPoint( 1171753200000d, 0.76140 ) );
        exchangeRates.add( new DataPoint( 1171839600000d, 0.76140 ) );
        exchangeRates.add( new DataPoint( 1171926000000d, 0.76070 ) );
        exchangeRates.add( new DataPoint( 1172012400000d, 0.76020 ) );
        exchangeRates.add( new DataPoint( 1172098800000d, 0.76110 ) );
        exchangeRates.add( new DataPoint( 1172185200000d, 0.76220 ) );
        exchangeRates.add( new DataPoint( 1172271600000d, 0.76150 ) );
        exchangeRates.add( new DataPoint( 1172358000000d, 0.75980 ) );
        exchangeRates.add( new DataPoint( 1172444400000d, 0.75980 ) );
        exchangeRates.add( new DataPoint( 1172530800000d, 0.75920 ) );
        exchangeRates.add( new DataPoint( 1172617200000d, 0.75730 ) );
        exchangeRates.add( new DataPoint( 1172703600000d, 0.75660 ) );
        exchangeRates.add( new DataPoint( 1172790000000d, 0.75670 ) );
        exchangeRates.add( new DataPoint( 1172876400000d, 0.75910 ) );
        exchangeRates.add( new DataPoint( 1172962800000d, 0.75820 ) );
        exchangeRates.add( new DataPoint( 1173049200000d, 0.75850 ) );
        exchangeRates.add( new DataPoint( 1173135600000d, 0.76130 ) );
        exchangeRates.add( new DataPoint( 1173222000000d, 0.76310 ) );
        exchangeRates.add( new DataPoint( 1173308400000d, 0.76150 ) );
        exchangeRates.add( new DataPoint( 1173394800000d, 0.760 ) );
        exchangeRates.add( new DataPoint( 1173481200000d, 0.76130 ) );
        exchangeRates.add( new DataPoint( 1173567600000d, 0.76270 ) );
        exchangeRates.add( new DataPoint( 1173654000000d, 0.76270 ) );
        exchangeRates.add( new DataPoint( 1173740400000d, 0.76080 ) );
        exchangeRates.add( new DataPoint( 1173826800000d, 0.75830 ) );
        exchangeRates.add( new DataPoint( 1173913200000d, 0.75750 ) );
        exchangeRates.add( new DataPoint( 1173999600000d, 0.75620 ) );
        exchangeRates.add( new DataPoint( 1174086000000d, 0.7520 ) );
        exchangeRates.add( new DataPoint( 1174172400000d, 0.75120 ) );
        exchangeRates.add( new DataPoint( 1174258800000d, 0.75120 ) );
        exchangeRates.add( new DataPoint( 1174345200000d, 0.75170 ) );
        exchangeRates.add( new DataPoint( 1174431600000d, 0.7520 ) );
        exchangeRates.add( new DataPoint( 1174518000000d, 0.75110 ) );
        exchangeRates.add( new DataPoint( 1174604400000d, 0.7480 ) );
        exchangeRates.add( new DataPoint( 1174690800000d, 0.75090 ) );
        exchangeRates.add( new DataPoint( 1174777200000d, 0.75310 ) );
        exchangeRates.add( new DataPoint( 1174860000000d, 0.75310 ) );
        exchangeRates.add( new DataPoint( 1174946400000d, 0.75270 ) );
        exchangeRates.add( new DataPoint( 1175032800000d, 0.74980 ) );
        exchangeRates.add( new DataPoint( 1175119200000d, 0.74930 ) );
        exchangeRates.add( new DataPoint( 1175205600000d, 0.75040 ) );
        exchangeRates.add( new DataPoint( 1175292000000d, 0.750 ) );
        exchangeRates.add( new DataPoint( 1175378400000d, 0.74910 ) );
        exchangeRates.add( new DataPoint( 1175464800000d, 0.74910 ) );
        exchangeRates.add( new DataPoint( 1175551200000d, 0.74850 ) );
        exchangeRates.add( new DataPoint( 1175637600000d, 0.74840 ) );
        exchangeRates.add( new DataPoint( 1175724000000d, 0.74920 ) );
        exchangeRates.add( new DataPoint( 1175810400000d, 0.74710 ) );
        exchangeRates.add( new DataPoint( 1175896800000d, 0.74590 ) );
        exchangeRates.add( new DataPoint( 1175983200000d, 0.74770 ) );
        exchangeRates.add( new DataPoint( 1176069600000d, 0.74770 ) );
        exchangeRates.add( new DataPoint( 1176156000000d, 0.74830 ) );
        exchangeRates.add( new DataPoint( 1176242400000d, 0.74580 ) );
        exchangeRates.add( new DataPoint( 1176328800000d, 0.74480 ) );
        exchangeRates.add( new DataPoint( 1176415200000d, 0.7430 ) );
        exchangeRates.add( new DataPoint( 1176501600000d, 0.73990 ) );
        exchangeRates.add( new DataPoint( 1176588000000d, 0.73950 ) );
        exchangeRates.add( new DataPoint( 1176674400000d, 0.73950 ) );
        exchangeRates.add( new DataPoint( 1176760800000d, 0.73780 ) );
        exchangeRates.add( new DataPoint( 1176847200000d, 0.73820 ) );
        exchangeRates.add( new DataPoint( 1176933600000d, 0.73620 ) );
        exchangeRates.add( new DataPoint( 1177020000000d, 0.73550 ) );
        exchangeRates.add( new DataPoint( 1177106400000d, 0.73480 ) );
        exchangeRates.add( new DataPoint( 1177192800000d, 0.73610 ) );
        exchangeRates.add( new DataPoint( 1177279200000d, 0.73610 ) );
        exchangeRates.add( new DataPoint( 1177365600000d, 0.73650 ) );
        exchangeRates.add( new DataPoint( 1177452000000d, 0.73620 ) );
        exchangeRates.add( new DataPoint( 1177538400000d, 0.73310 ) );
        exchangeRates.add( new DataPoint( 1177624800000d, 0.73390 ) );
        exchangeRates.add( new DataPoint( 1177711200000d, 0.73440 ) );
        exchangeRates.add( new DataPoint( 1177797600000d, 0.73270 ) );
        exchangeRates.add( new DataPoint( 1177884000000d, 0.73270 ) );
        exchangeRates.add( new DataPoint( 1177970400000d, 0.73360 ) );
        exchangeRates.add( new DataPoint( 1178056800000d, 0.73330 ) );
        exchangeRates.add( new DataPoint( 1178143200000d, 0.73590 ) );
        exchangeRates.add( new DataPoint( 1178229600000d, 0.73590 ) );
        exchangeRates.add( new DataPoint( 1178316000000d, 0.73720 ) );
        exchangeRates.add( new DataPoint( 1178402400000d, 0.7360 ) );
        exchangeRates.add( new DataPoint( 1178488800000d, 0.7360 ) );
        exchangeRates.add( new DataPoint( 1178575200000d, 0.7350 ) );
        exchangeRates.add( new DataPoint( 1178661600000d, 0.73650 ) );
        exchangeRates.add( new DataPoint( 1178748000000d, 0.73840 ) );
        exchangeRates.add( new DataPoint( 1178834400000d, 0.73950 ) );
        exchangeRates.add( new DataPoint( 1178920800000d, 0.74130 ) );
        exchangeRates.add( new DataPoint( 1179007200000d, 0.73970 ) );
        exchangeRates.add( new DataPoint( 1179093600000d, 0.73960 ) );
        exchangeRates.add( new DataPoint( 1179180000000d, 0.73850 ) );
        exchangeRates.add( new DataPoint( 1179266400000d, 0.73780 ) );
        exchangeRates.add( new DataPoint( 1179352800000d, 0.73660 ) );
        exchangeRates.add( new DataPoint( 1179439200000d, 0.740 ) );
        exchangeRates.add( new DataPoint( 1179525600000d, 0.74110 ) );
        exchangeRates.add( new DataPoint( 1179612000000d, 0.74060 ) );
        exchangeRates.add( new DataPoint( 1179698400000d, 0.74050 ) );
        exchangeRates.add( new DataPoint( 1179784800000d, 0.74140 ) );
        exchangeRates.add( new DataPoint( 1179871200000d, 0.74310 ) );
        exchangeRates.add( new DataPoint( 1179957600000d, 0.74310 ) );
        exchangeRates.add( new DataPoint( 1180044000000d, 0.74380 ) );
        exchangeRates.add( new DataPoint( 1180130400000d, 0.74430 ) );
        exchangeRates.add( new DataPoint( 1180216800000d, 0.74430 ) );
        exchangeRates.add( new DataPoint( 1180303200000d, 0.74430 ) );
        exchangeRates.add( new DataPoint( 1180389600000d, 0.74340 ) );
        exchangeRates.add( new DataPoint( 1180476000000d, 0.74290 ) );
        exchangeRates.add( new DataPoint( 1180562400000d, 0.74420 ) );
        exchangeRates.add( new DataPoint( 1180648800000d, 0.7440 ) );
        exchangeRates.add( new DataPoint( 1180735200000d, 0.74390 ) );
        exchangeRates.add( new DataPoint( 1180821600000d, 0.74370 ) );
        exchangeRates.add( new DataPoint( 1180908000000d, 0.74370 ) );
        exchangeRates.add( new DataPoint( 1180994400000d, 0.74290 ) );
        exchangeRates.add( new DataPoint( 1181080800000d, 0.74030 ) );
        exchangeRates.add( new DataPoint( 1181167200000d, 0.73990 ) );
        exchangeRates.add( new DataPoint( 1181253600000d, 0.74180 ) );
        exchangeRates.add( new DataPoint( 1181340000000d, 0.74680 ) );
        exchangeRates.add( new DataPoint( 1181426400000d, 0.7480 ) );
        exchangeRates.add( new DataPoint( 1181512800000d, 0.7480 ) );
        exchangeRates.add( new DataPoint( 1181599200000d, 0.7490 ) );
        exchangeRates.add( new DataPoint( 1181685600000d, 0.74940 ) );
        exchangeRates.add( new DataPoint( 1181772000000d, 0.75220 ) );
        exchangeRates.add( new DataPoint( 1181858400000d, 0.75150 ) );
        exchangeRates.add( new DataPoint( 1181944800000d, 0.75020 ) );
        exchangeRates.add( new DataPoint( 1182031200000d, 0.74720 ) );
        exchangeRates.add( new DataPoint( 1182117600000d, 0.74720 ) );
        exchangeRates.add( new DataPoint( 1182204000000d, 0.74620 ) );
        exchangeRates.add( new DataPoint( 1182290400000d, 0.74550 ) );
        exchangeRates.add( new DataPoint( 1182376800000d, 0.74490 ) );
        exchangeRates.add( new DataPoint( 1182463200000d, 0.74670 ) );
        exchangeRates.add( new DataPoint( 1182549600000d, 0.74580 ) );
        exchangeRates.add( new DataPoint( 1182636000000d, 0.74270 ) );
        exchangeRates.add( new DataPoint( 1182722400000d, 0.74270 ) );
        exchangeRates.add( new DataPoint( 1182808800000d, 0.7430 ) );
        exchangeRates.add( new DataPoint( 1182895200000d, 0.74290 ) );
        exchangeRates.add( new DataPoint( 1182981600000d, 0.7440 ) );
        exchangeRates.add( new DataPoint( 1183068000000d, 0.7430 ) );
        exchangeRates.add( new DataPoint( 1183154400000d, 0.74220 ) );
        exchangeRates.add( new DataPoint( 1183240800000d, 0.73880 ) );
        exchangeRates.add( new DataPoint( 1183327200000d, 0.73880 ) );
        exchangeRates.add( new DataPoint( 1183413600000d, 0.73690 ) );
        exchangeRates.add( new DataPoint( 1183500000000d, 0.73450 ) );
        exchangeRates.add( new DataPoint( 1183586400000d, 0.73450 ) );
        exchangeRates.add( new DataPoint( 1183672800000d, 0.73450 ) );
        exchangeRates.add( new DataPoint( 1183759200000d, 0.73520 ) );
        exchangeRates.add( new DataPoint( 1183845600000d, 0.73410 ) );
        exchangeRates.add( new DataPoint( 1183932000000d, 0.73410 ) );
        exchangeRates.add( new DataPoint( 1184018400000d, 0.7340 ) );
        exchangeRates.add( new DataPoint( 1184104800000d, 0.73240 ) );
        exchangeRates.add( new DataPoint( 1184191200000d, 0.72720 ) );
        exchangeRates.add( new DataPoint( 1184277600000d, 0.72640 ) );
        exchangeRates.add( new DataPoint( 1184364000000d, 0.72550 ) );
        exchangeRates.add( new DataPoint( 1184450400000d, 0.72580 ) );
        exchangeRates.add( new DataPoint( 1184536800000d, 0.72580 ) );
        exchangeRates.add( new DataPoint( 1184623200000d, 0.72560 ) );
        exchangeRates.add( new DataPoint( 1184709600000d, 0.72570 ) );
        exchangeRates.add( new DataPoint( 1184796000000d, 0.72470 ) );
        exchangeRates.add( new DataPoint( 1184882400000d, 0.72430 ) );
        exchangeRates.add( new DataPoint( 1184968800000d, 0.72440 ) );
        exchangeRates.add( new DataPoint( 1185055200000d, 0.72350 ) );
        exchangeRates.add( new DataPoint( 1185141600000d, 0.72350 ) );
        exchangeRates.add( new DataPoint( 1185228000000d, 0.72350 ) );
        exchangeRates.add( new DataPoint( 1185314400000d, 0.72350 ) );
        exchangeRates.add( new DataPoint( 1185400800000d, 0.72620 ) );
        exchangeRates.add( new DataPoint( 1185487200000d, 0.72880 ) );
        exchangeRates.add( new DataPoint( 1185573600000d, 0.73010 ) );
        exchangeRates.add( new DataPoint( 1185660000000d, 0.73370 ) );
        exchangeRates.add( new DataPoint( 1185746400000d, 0.73370 ) );
        exchangeRates.add( new DataPoint( 1185832800000d, 0.73240 ) );
        exchangeRates.add( new DataPoint( 1185919200000d, 0.72970 ) );
        exchangeRates.add( new DataPoint( 1186005600000d, 0.73170 ) );
        exchangeRates.add( new DataPoint( 1186092000000d, 0.73150 ) );
        exchangeRates.add( new DataPoint( 1186178400000d, 0.72880 ) );
        exchangeRates.add( new DataPoint( 1186264800000d, 0.72630 ) );
        exchangeRates.add( new DataPoint( 1186351200000d, 0.72630 ) );
        exchangeRates.add( new DataPoint( 1186437600000d, 0.72420 ) );
        exchangeRates.add( new DataPoint( 1186524000000d, 0.72530 ) );
        exchangeRates.add( new DataPoint( 1186610400000d, 0.72640 ) );
        exchangeRates.add( new DataPoint( 1186696800000d, 0.7270 ) );
        exchangeRates.add( new DataPoint( 1186783200000d, 0.73120 ) );
        exchangeRates.add( new DataPoint( 1186869600000d, 0.73050 ) );
        exchangeRates.add( new DataPoint( 1186956000000d, 0.73050 ) );
        exchangeRates.add( new DataPoint( 1187042400000d, 0.73180 ) );
        exchangeRates.add( new DataPoint( 1187128800000d, 0.73580 ) );
        exchangeRates.add( new DataPoint( 1187215200000d, 0.74090 ) );
        exchangeRates.add( new DataPoint( 1187301600000d, 0.74540 ) );
        exchangeRates.add( new DataPoint( 1187388000000d, 0.74370 ) );
        exchangeRates.add( new DataPoint( 1187474400000d, 0.74240 ) );
        exchangeRates.add( new DataPoint( 1187560800000d, 0.74240 ) );
        exchangeRates.add( new DataPoint( 1187647200000d, 0.74150 ) );
        exchangeRates.add( new DataPoint( 1187733600000d, 0.74190 ) );
        exchangeRates.add( new DataPoint( 1187820000000d, 0.74140 ) );
        exchangeRates.add( new DataPoint( 1187906400000d, 0.73770 ) );
        exchangeRates.add( new DataPoint( 1187992800000d, 0.73550 ) );
        exchangeRates.add( new DataPoint( 1188079200000d, 0.73150 ) );
        exchangeRates.add( new DataPoint( 1188165600000d, 0.73150 ) );
        exchangeRates.add( new DataPoint( 1188252000000d, 0.7320 ) );
        exchangeRates.add( new DataPoint( 1188338400000d, 0.73320 ) );
        exchangeRates.add( new DataPoint( 1188424800000d, 0.73460 ) );
        exchangeRates.add( new DataPoint( 1188511200000d, 0.73280 ) );
        exchangeRates.add( new DataPoint( 1188597600000d, 0.73230 ) );
        exchangeRates.add( new DataPoint( 1188684000000d, 0.7340 ) );
        exchangeRates.add( new DataPoint( 1188770400000d, 0.7340 ) );
        exchangeRates.add( new DataPoint( 1188856800000d, 0.73360 ) );
        exchangeRates.add( new DataPoint( 1188943200000d, 0.73510 ) );
        exchangeRates.add( new DataPoint( 1189029600000d, 0.73460 ) );
        exchangeRates.add( new DataPoint( 1189116000000d, 0.73210 ) );
        exchangeRates.add( new DataPoint( 1189202400000d, 0.72940 ) );
        exchangeRates.add( new DataPoint( 1189288800000d, 0.72660 ) );
        exchangeRates.add( new DataPoint( 1189375200000d, 0.72660 ) );
        exchangeRates.add( new DataPoint( 1189461600000d, 0.72540 ) );
        exchangeRates.add( new DataPoint( 1189548000000d, 0.72420 ) );
        exchangeRates.add( new DataPoint( 1189634400000d, 0.72130 ) );
        exchangeRates.add( new DataPoint( 1189720800000d, 0.71970 ) );
        exchangeRates.add( new DataPoint( 1189807200000d, 0.72090 ) );
        exchangeRates.add( new DataPoint( 1189893600000d, 0.7210 ) );
        exchangeRates.add( new DataPoint( 1189980000000d, 0.7210 ) );
        exchangeRates.add( new DataPoint( 1190066400000d, 0.7210 ) );
        exchangeRates.add( new DataPoint( 1190152800000d, 0.72090 ) );
        exchangeRates.add( new DataPoint( 1190239200000d, 0.71590 ) );
        exchangeRates.add( new DataPoint( 1190325600000d, 0.71330 ) );
        exchangeRates.add( new DataPoint( 1190412000000d, 0.71050 ) );
        exchangeRates.add( new DataPoint( 1190498400000d, 0.70990 ) );
        exchangeRates.add( new DataPoint( 1190584800000d, 0.70990 ) );
        exchangeRates.add( new DataPoint( 1190671200000d, 0.70930 ) );
        exchangeRates.add( new DataPoint( 1190757600000d, 0.70930 ) );
        exchangeRates.add( new DataPoint( 1190844000000d, 0.70760 ) );
        exchangeRates.add( new DataPoint( 1190930400000d, 0.7070 ) );
        exchangeRates.add( new DataPoint( 1191016800000d, 0.70490 ) );
        exchangeRates.add( new DataPoint( 1191103200000d, 0.70120 ) );
        exchangeRates.add( new DataPoint( 1191189600000d, 0.70110 ) );
        exchangeRates.add( new DataPoint( 1191276000000d, 0.70190 ) );
        exchangeRates.add( new DataPoint( 1191362400000d, 0.70460 ) );
        exchangeRates.add( new DataPoint( 1191448800000d, 0.70630 ) );
        exchangeRates.add( new DataPoint( 1191535200000d, 0.70890 ) );
        exchangeRates.add( new DataPoint( 1191621600000d, 0.70770 ) );
        exchangeRates.add( new DataPoint( 1191708000000d, 0.70770 ) );
        exchangeRates.add( new DataPoint( 1191794400000d, 0.70770 ) );
        exchangeRates.add( new DataPoint( 1191880800000d, 0.70910 ) );
        exchangeRates.add( new DataPoint( 1191967200000d, 0.71180 ) );
        exchangeRates.add( new DataPoint( 1192053600000d, 0.70790 ) );
        exchangeRates.add( new DataPoint( 1192140000000d, 0.70530 ) );
        exchangeRates.add( new DataPoint( 1192226400000d, 0.7050 ) );
        exchangeRates.add( new DataPoint( 1192312800000d, 0.70550 ) );
        exchangeRates.add( new DataPoint( 1192399200000d, 0.70550 ) );
        exchangeRates.add( new DataPoint( 1192485600000d, 0.70450 ) );
        exchangeRates.add( new DataPoint( 1192572000000d, 0.70510 ) );
        exchangeRates.add( new DataPoint( 1192658400000d, 0.70510 ) );
        exchangeRates.add( new DataPoint( 1192744800000d, 0.70170 ) );
        exchangeRates.add( new DataPoint( 1192831200000d, 0.70 ) );
        exchangeRates.add( new DataPoint( 1192917600000d, 0.69950 ) );
        exchangeRates.add( new DataPoint( 1193004000000d, 0.69940 ) );
        exchangeRates.add( new DataPoint( 1193090400000d, 0.70140 ) );
        exchangeRates.add( new DataPoint( 1193176800000d, 0.70360 ) );
        exchangeRates.add( new DataPoint( 1193263200000d, 0.70210 ) );
        exchangeRates.add( new DataPoint( 1193349600000d, 0.70020 ) );
        exchangeRates.add( new DataPoint( 1193436000000d, 0.69670 ) );
        exchangeRates.add( new DataPoint( 1193522400000d, 0.6950 ) );
        exchangeRates.add( new DataPoint( 1193612400000d, 0.6950 ) );
        exchangeRates.add( new DataPoint( 1193698800000d, 0.69390 ) );
        exchangeRates.add( new DataPoint( 1193785200000d, 0.6940 ) );
        exchangeRates.add( new DataPoint( 1193871600000d, 0.69220 ) );
        exchangeRates.add( new DataPoint( 1193958000000d, 0.69190 ) );
        exchangeRates.add( new DataPoint( 1194044400000d, 0.69140 ) );
        exchangeRates.add( new DataPoint( 1194130800000d, 0.68940 ) );
        exchangeRates.add( new DataPoint( 1194217200000d, 0.68910 ) );
        exchangeRates.add( new DataPoint( 1194303600000d, 0.69040 ) );
        exchangeRates.add( new DataPoint( 1194390000000d, 0.6890 ) );
        exchangeRates.add( new DataPoint( 1194476400000d, 0.68340 ) );
        exchangeRates.add( new DataPoint( 1194562800000d, 0.68230 ) );
        exchangeRates.add( new DataPoint( 1194649200000d, 0.68070 ) );
        exchangeRates.add( new DataPoint( 1194735600000d, 0.68150 ) );
        exchangeRates.add( new DataPoint( 1194822000000d, 0.68150 ) );
        exchangeRates.add( new DataPoint( 1194908400000d, 0.68470 ) );
        exchangeRates.add( new DataPoint( 1194994800000d, 0.68590 ) );
        exchangeRates.add( new DataPoint( 1195081200000d, 0.68220 ) );
        exchangeRates.add( new DataPoint( 1195167600000d, 0.68270 ) );
        exchangeRates.add( new DataPoint( 1195254000000d, 0.68370 ) );
        exchangeRates.add( new DataPoint( 1195340400000d, 0.68230 ) );
        exchangeRates.add( new DataPoint( 1195426800000d, 0.68220 ) );
        exchangeRates.add( new DataPoint( 1195513200000d, 0.68220 ) );
        exchangeRates.add( new DataPoint( 1195599600000d, 0.67920 ) );
        exchangeRates.add( new DataPoint( 1195686000000d, 0.67460 ) );
        exchangeRates.add( new DataPoint( 1195772400000d, 0.67350 ) );
        exchangeRates.add( new DataPoint( 1195858800000d, 0.67310 ) );
        exchangeRates.add( new DataPoint( 1195945200000d, 0.67420 ) );
        exchangeRates.add( new DataPoint( 1196031600000d, 0.67440 ) );
        exchangeRates.add( new DataPoint( 1196118000000d, 0.67390 ) );
        exchangeRates.add( new DataPoint( 1196204400000d, 0.67310 ) );
        exchangeRates.add( new DataPoint( 1196290800000d, 0.67610 ) );
        exchangeRates.add( new DataPoint( 1196377200000d, 0.67610 ) );
        exchangeRates.add( new DataPoint( 1196463600000d, 0.67850 ) );
        exchangeRates.add( new DataPoint( 1196550000000d, 0.68180 ) );
        exchangeRates.add( new DataPoint( 1196636400000d, 0.68360 ) );
        exchangeRates.add( new DataPoint( 1196722800000d, 0.68230 ) );
        exchangeRates.add( new DataPoint( 1196809200000d, 0.68050 ) );
        exchangeRates.add( new DataPoint( 1196895600000d, 0.67930 ) );
        exchangeRates.add( new DataPoint( 1196982000000d, 0.68490 ) );
        exchangeRates.add( new DataPoint( 1197068400000d, 0.68330 ) );
        exchangeRates.add( new DataPoint( 1197154800000d, 0.68250 ) );
        exchangeRates.add( new DataPoint( 1197241200000d, 0.68250 ) );
        exchangeRates.add( new DataPoint( 1197327600000d, 0.68160 ) );
        exchangeRates.add( new DataPoint( 1197414000000d, 0.67990 ) );
        exchangeRates.add( new DataPoint( 1197500400000d, 0.68130 ) );
        exchangeRates.add( new DataPoint( 1197586800000d, 0.68090 ) );
        exchangeRates.add( new DataPoint( 1197673200000d, 0.68680 ) );
        exchangeRates.add( new DataPoint( 1197759600000d, 0.69330 ) );
        exchangeRates.add( new DataPoint( 1197846000000d, 0.69330 ) );
        exchangeRates.add( new DataPoint( 1197932400000d, 0.69450 ) );
        exchangeRates.add( new DataPoint( 1198018800000d, 0.69440 ) );
        exchangeRates.add( new DataPoint( 1198105200000d, 0.69460 ) );
        exchangeRates.add( new DataPoint( 1198191600000d, 0.69640 ) );
        exchangeRates.add( new DataPoint( 1198278000000d, 0.69650 ) );
        exchangeRates.add( new DataPoint( 1198364400000d, 0.69560 ) );
        exchangeRates.add( new DataPoint( 1198450800000d, 0.69560 ) );
        exchangeRates.add( new DataPoint( 1198537200000d, 0.6950 ) );
        exchangeRates.add( new DataPoint( 1198623600000d, 0.69480 ) );
        exchangeRates.add( new DataPoint( 1198710000000d, 0.69280 ) );
        exchangeRates.add( new DataPoint( 1198796400000d, 0.68870 ) );
        exchangeRates.add( new DataPoint( 1198882800000d, 0.68240 ) );
        exchangeRates.add( new DataPoint( 1198969200000d, 0.67940 ) );
        exchangeRates.add( new DataPoint( 1199055600000d, 0.67940 ) );
        exchangeRates.add( new DataPoint( 1199142000000d, 0.68030 ) );
        exchangeRates.add( new DataPoint( 1199228400000d, 0.68550 ) );
        exchangeRates.add( new DataPoint( 1199314800000d, 0.68240 ) );
        exchangeRates.add( new DataPoint( 1199401200000d, 0.67910 ) );
        exchangeRates.add( new DataPoint( 1199487600000d, 0.67830 ) );
        exchangeRates.add( new DataPoint( 1199574000000d, 0.67850 ) );
        exchangeRates.add( new DataPoint( 1199660400000d, 0.67850 ) );
        exchangeRates.add( new DataPoint( 1199746800000d, 0.67970 ) );
        exchangeRates.add( new DataPoint( 1199833200000d, 0.680 ) );
        exchangeRates.add( new DataPoint( 1199919600000d, 0.68030 ) );
        exchangeRates.add( new DataPoint( 1200006000000d, 0.68050 ) );
        exchangeRates.add( new DataPoint( 1200092400000d, 0.6760 ) );
        exchangeRates.add( new DataPoint( 1200178800000d, 0.6770 ) );
        exchangeRates.add( new DataPoint( 1200265200000d, 0.6770 ) );
        exchangeRates.add( new DataPoint( 1200351600000d, 0.67360 ) );
        exchangeRates.add( new DataPoint( 1200438000000d, 0.67260 ) );
        exchangeRates.add( new DataPoint( 1200524400000d, 0.67640 ) );
        exchangeRates.add( new DataPoint( 1200610800000d, 0.68210 ) );
        exchangeRates.add( new DataPoint( 1200697200000d, 0.68310 ) );
        exchangeRates.add( new DataPoint( 1200783600000d, 0.68420 ) );
        exchangeRates.add( new DataPoint( 1200870000000d, 0.68420 ) );
        exchangeRates.add( new DataPoint( 1200956400000d, 0.68870 ) );
        exchangeRates.add( new DataPoint( 1201042800000d, 0.69030 ) );
        exchangeRates.add( new DataPoint( 1201129200000d, 0.68480 ) );
        exchangeRates.add( new DataPoint( 1201215600000d, 0.68240 ) );
        exchangeRates.add( new DataPoint( 1201302000000d, 0.67880 ) );
        exchangeRates.add( new DataPoint( 1201388400000d, 0.68140 ) );
        exchangeRates.add( new DataPoint( 1201474800000d, 0.68140 ) );
        exchangeRates.add( new DataPoint( 1201561200000d, 0.67970 ) );
        exchangeRates.add( new DataPoint( 1201647600000d, 0.67690 ) );
        exchangeRates.add( new DataPoint( 1201734000000d, 0.67650 ) );
        exchangeRates.add( new DataPoint( 1201820400000d, 0.67330 ) );
        exchangeRates.add( new DataPoint( 1201906800000d, 0.67290 ) );
        exchangeRates.add( new DataPoint( 1201993200000d, 0.67580 ) );
        exchangeRates.add( new DataPoint( 1202079600000d, 0.67580 ) );
        exchangeRates.add( new DataPoint( 1202166000000d, 0.6750 ) );
        exchangeRates.add( new DataPoint( 1202252400000d, 0.6780 ) );
        exchangeRates.add( new DataPoint( 1202338800000d, 0.68330 ) );
        exchangeRates.add( new DataPoint( 1202425200000d, 0.68560 ) );
        exchangeRates.add( new DataPoint( 1202511600000d, 0.69030 ) );
        exchangeRates.add( new DataPoint( 1202598000000d, 0.68960 ) );
        exchangeRates.add( new DataPoint( 1202684400000d, 0.68960 ) );
        exchangeRates.add( new DataPoint( 1202770800000d, 0.68820 ) );
        exchangeRates.add( new DataPoint( 1202857200000d, 0.68790 ) );
        exchangeRates.add( new DataPoint( 1202943600000d, 0.68620 ) );
        exchangeRates.add( new DataPoint( 1203030000000d, 0.68520 ) );
        exchangeRates.add( new DataPoint( 1203116400000d, 0.68230 ) );
        exchangeRates.add( new DataPoint( 1203202800000d, 0.68130 ) );
        exchangeRates.add( new DataPoint( 1203289200000d, 0.68130 ) );
        exchangeRates.add( new DataPoint( 1203375600000d, 0.68220 ) );
        exchangeRates.add( new DataPoint( 1203462000000d, 0.68020 ) );
        exchangeRates.add( new DataPoint( 1203548400000d, 0.68020 ) );
        exchangeRates.add( new DataPoint( 1203634800000d, 0.67840 ) );
        exchangeRates.add( new DataPoint( 1203721200000d, 0.67480 ) );
        exchangeRates.add( new DataPoint( 1203807600000d, 0.67470 ) );
        exchangeRates.add( new DataPoint( 1203894000000d, 0.67470 ) );
        exchangeRates.add( new DataPoint( 1203980400000d, 0.67480 ) );
        exchangeRates.add( new DataPoint( 1204066800000d, 0.67330 ) );
        exchangeRates.add( new DataPoint( 1204153200000d, 0.6650 ) );
        exchangeRates.add( new DataPoint( 1204239600000d, 0.66110 ) );
        exchangeRates.add( new DataPoint( 1204326000000d, 0.65830 ) );
        exchangeRates.add( new DataPoint( 1204412400000d, 0.6590 ) );
        exchangeRates.add( new DataPoint( 1204498800000d, 0.6590 ) );
        exchangeRates.add( new DataPoint( 1204585200000d, 0.65810 ) );
        exchangeRates.add( new DataPoint( 1204671600000d, 0.65780 ) );
        exchangeRates.add( new DataPoint( 1204758000000d, 0.65740 ) );
        exchangeRates.add( new DataPoint( 1204844400000d, 0.65320 ) );
        exchangeRates.add( new DataPoint( 1204930800000d, 0.65020 ) );
        exchangeRates.add( new DataPoint( 1205017200000d, 0.65140 ) );
        exchangeRates.add( new DataPoint( 1205103600000d, 0.65140 ) );
        exchangeRates.add( new DataPoint( 1205190000000d, 0.65070 ) );
        exchangeRates.add( new DataPoint( 1205276400000d, 0.6510 ) );
        exchangeRates.add( new DataPoint( 1205362800000d, 0.64890 ) );
        exchangeRates.add( new DataPoint( 1205449200000d, 0.64240 ) );
        exchangeRates.add( new DataPoint( 1205535600000d, 0.64060 ) );
        exchangeRates.add( new DataPoint( 1205622000000d, 0.63820 ) );
        exchangeRates.add( new DataPoint( 1205708400000d, 0.63820 ) );
        exchangeRates.add( new DataPoint( 1205794800000d, 0.63410 ) );
        exchangeRates.add( new DataPoint( 1205881200000d, 0.63440 ) );
        exchangeRates.add( new DataPoint( 1205967600000d, 0.63780 ) );
        exchangeRates.add( new DataPoint( 1206054000000d, 0.64390 ) );
        exchangeRates.add( new DataPoint( 1206140400000d, 0.64780 ) );
        exchangeRates.add( new DataPoint( 1206226800000d, 0.64810 ) );
        exchangeRates.add( new DataPoint( 1206313200000d, 0.64810 ) );
        exchangeRates.add( new DataPoint( 1206399600000d, 0.64940 ) );
        exchangeRates.add( new DataPoint( 1206486000000d, 0.64380 ) );
        exchangeRates.add( new DataPoint( 1206572400000d, 0.63770 ) );
        exchangeRates.add( new DataPoint( 1206658800000d, 0.63290 ) );
        exchangeRates.add( new DataPoint( 1206745200000d, 0.63360 ) );
        exchangeRates.add( new DataPoint( 1206831600000d, 0.63330 ) );
        exchangeRates.add( new DataPoint( 1206914400000d, 0.63330 ) );
        exchangeRates.add( new DataPoint( 1207000800000d, 0.6330 ) );
        exchangeRates.add( new DataPoint( 1207087200000d, 0.63710 ) );
        exchangeRates.add( new DataPoint( 1207173600000d, 0.64030 ) );
        exchangeRates.add( new DataPoint( 1207260000000d, 0.63960 ) );
        exchangeRates.add( new DataPoint( 1207346400000d, 0.63640 ) );
        exchangeRates.add( new DataPoint( 1207432800000d, 0.63560 ) );
        exchangeRates.add( new DataPoint( 1207519200000d, 0.63560 ) );
        exchangeRates.add( new DataPoint( 1207605600000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1207692000000d, 0.63570 ) );
        exchangeRates.add( new DataPoint( 1207778400000d, 0.63540 ) );
        exchangeRates.add( new DataPoint( 1207864800000d, 0.6320 ) );
        exchangeRates.add( new DataPoint( 1207951200000d, 0.63320 ) );
        exchangeRates.add( new DataPoint( 1208037600000d, 0.63280 ) );
        exchangeRates.add( new DataPoint( 1208124000000d, 0.63310 ) );
        exchangeRates.add( new DataPoint( 1208210400000d, 0.63420 ) );
        exchangeRates.add( new DataPoint( 1208296800000d, 0.63210 ) );
        exchangeRates.add( new DataPoint( 1208383200000d, 0.63020 ) );
        exchangeRates.add( new DataPoint( 1208469600000d, 0.62780 ) );
        exchangeRates.add( new DataPoint( 1208556000000d, 0.63080 ) );
        exchangeRates.add( new DataPoint( 1208642400000d, 0.63240 ) );
        exchangeRates.add( new DataPoint( 1208728800000d, 0.63240 ) );
        exchangeRates.add( new DataPoint( 1208815200000d, 0.63070 ) );
        exchangeRates.add( new DataPoint( 1208901600000d, 0.62770 ) );
        exchangeRates.add( new DataPoint( 1208988000000d, 0.62690 ) );
        exchangeRates.add( new DataPoint( 1209074400000d, 0.63350 ) );
        exchangeRates.add( new DataPoint( 1209160800000d, 0.63920 ) );
        exchangeRates.add( new DataPoint( 1209247200000d, 0.640 ) );
        exchangeRates.add( new DataPoint( 1209333600000d, 0.64010 ) );
        exchangeRates.add( new DataPoint( 1209420000000d, 0.63960 ) );
        exchangeRates.add( new DataPoint( 1209506400000d, 0.64070 ) );
        exchangeRates.add( new DataPoint( 1209592800000d, 0.64230 ) );
        exchangeRates.add( new DataPoint( 1209679200000d, 0.64290 ) );
        exchangeRates.add( new DataPoint( 1209765600000d, 0.64720 ) );
        exchangeRates.add( new DataPoint( 1209852000000d, 0.64850 ) );
        exchangeRates.add( new DataPoint( 1209938400000d, 0.64860 ) );
        exchangeRates.add( new DataPoint( 1210024800000d, 0.64670 ) );
        exchangeRates.add( new DataPoint( 1210111200000d, 0.64440 ) );
        exchangeRates.add( new DataPoint( 1210197600000d, 0.64670 ) );
        exchangeRates.add( new DataPoint( 1210284000000d, 0.65090 ) );
        exchangeRates.add( new DataPoint( 1210370400000d, 0.64780 ) );
        exchangeRates.add( new DataPoint( 1210456800000d, 0.64610 ) );
        exchangeRates.add( new DataPoint( 1210543200000d, 0.64610 ) );
        exchangeRates.add( new DataPoint( 1210629600000d, 0.64680 ) );
        exchangeRates.add( new DataPoint( 1210716000000d, 0.64490 ) );
        exchangeRates.add( new DataPoint( 1210802400000d, 0.6470 ) );
        exchangeRates.add( new DataPoint( 1210888800000d, 0.64610 ) );
        exchangeRates.add( new DataPoint( 1210975200000d, 0.64520 ) );
        exchangeRates.add( new DataPoint( 1211061600000d, 0.64220 ) );
        exchangeRates.add( new DataPoint( 1211148000000d, 0.64220 ) );
        exchangeRates.add( new DataPoint( 1211234400000d, 0.64250 ) );
        exchangeRates.add( new DataPoint( 1211320800000d, 0.64140 ) );
        exchangeRates.add( new DataPoint( 1211407200000d, 0.63660 ) );
        exchangeRates.add( new DataPoint( 1211493600000d, 0.63460 ) );
        exchangeRates.add( new DataPoint( 1211580000000d, 0.6350 ) );
        exchangeRates.add( new DataPoint( 1211666400000d, 0.63460 ) );
        exchangeRates.add( new DataPoint( 1211752800000d, 0.63460 ) );
        exchangeRates.add( new DataPoint( 1211839200000d, 0.63430 ) );
        exchangeRates.add( new DataPoint( 1211925600000d, 0.63460 ) );
        exchangeRates.add( new DataPoint( 1212012000000d, 0.63790 ) );
        exchangeRates.add( new DataPoint( 1212098400000d, 0.64160 ) );
        exchangeRates.add( new DataPoint( 1212184800000d, 0.64420 ) );
        exchangeRates.add( new DataPoint( 1212271200000d, 0.64310 ) );
        exchangeRates.add( new DataPoint( 1212357600000d, 0.64310 ) );
        exchangeRates.add( new DataPoint( 1212444000000d, 0.64350 ) );
        exchangeRates.add( new DataPoint( 1212530400000d, 0.6440 ) );
        exchangeRates.add( new DataPoint( 1212616800000d, 0.64730 ) );
        exchangeRates.add( new DataPoint( 1212703200000d, 0.64690 ) );
        exchangeRates.add( new DataPoint( 1212789600000d, 0.63860 ) );
        exchangeRates.add( new DataPoint( 1212876000000d, 0.63560 ) );
        exchangeRates.add( new DataPoint( 1212962400000d, 0.6340 ) );
        exchangeRates.add( new DataPoint( 1213048800000d, 0.63460 ) );
        exchangeRates.add( new DataPoint( 1213135200000d, 0.6430 ) );
        exchangeRates.add( new DataPoint( 1213221600000d, 0.64520 ) );
        exchangeRates.add( new DataPoint( 1213308000000d, 0.64670 ) );
        exchangeRates.add( new DataPoint( 1213394400000d, 0.65060 ) );
        exchangeRates.add( new DataPoint( 1213480800000d, 0.65040 ) );
        exchangeRates.add( new DataPoint( 1213567200000d, 0.65030 ) );
        exchangeRates.add( new DataPoint( 1213653600000d, 0.64810 ) );
        exchangeRates.add( new DataPoint( 1213740000000d, 0.64510 ) );
        exchangeRates.add( new DataPoint( 1213826400000d, 0.6450 ) );
        exchangeRates.add( new DataPoint( 1213912800000d, 0.64410 ) );
        exchangeRates.add( new DataPoint( 1213999200000d, 0.64140 ) );
        exchangeRates.add( new DataPoint( 1214085600000d, 0.64090 ) );
        exchangeRates.add( new DataPoint( 1214172000000d, 0.64090 ) );
        exchangeRates.add( new DataPoint( 1214258400000d, 0.64280 ) );
        exchangeRates.add( new DataPoint( 1214344800000d, 0.64310 ) );
        exchangeRates.add( new DataPoint( 1214431200000d, 0.64180 ) );
        exchangeRates.add( new DataPoint( 1214517600000d, 0.63710 ) );
        exchangeRates.add( new DataPoint( 1214604000000d, 0.63490 ) );
        exchangeRates.add( new DataPoint( 1214690400000d, 0.63330 ) );
        exchangeRates.add( new DataPoint( 1214776800000d, 0.63340 ) );
        exchangeRates.add( new DataPoint( 1214863200000d, 0.63380 ) );
        exchangeRates.add( new DataPoint( 1214949600000d, 0.63420 ) );
        exchangeRates.add( new DataPoint( 1215036000000d, 0.6320 ) );
        exchangeRates.add( new DataPoint( 1215122400000d, 0.63180 ) );
        exchangeRates.add( new DataPoint( 1215208800000d, 0.6370 ) );
        exchangeRates.add( new DataPoint( 1215295200000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1215381600000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1215468000000d, 0.63830 ) );
        exchangeRates.add( new DataPoint( 1215554400000d, 0.63710 ) );
        exchangeRates.add( new DataPoint( 1215640800000d, 0.63710 ) );
        exchangeRates.add( new DataPoint( 1215727200000d, 0.63550 ) );
        exchangeRates.add( new DataPoint( 1215813600000d, 0.6320 ) );
        exchangeRates.add( new DataPoint( 1215900000000d, 0.62770 ) );
        exchangeRates.add( new DataPoint( 1215986400000d, 0.62760 ) );
        exchangeRates.add( new DataPoint( 1216072800000d, 0.62910 ) );
        exchangeRates.add( new DataPoint( 1216159200000d, 0.62740 ) );
        exchangeRates.add( new DataPoint( 1216245600000d, 0.62930 ) );
        exchangeRates.add( new DataPoint( 1216332000000d, 0.63110 ) );
        exchangeRates.add( new DataPoint( 1216418400000d, 0.6310 ) );
        exchangeRates.add( new DataPoint( 1216504800000d, 0.63120 ) );
        exchangeRates.add( new DataPoint( 1216591200000d, 0.63120 ) );
        exchangeRates.add( new DataPoint( 1216677600000d, 0.63040 ) );
        exchangeRates.add( new DataPoint( 1216764000000d, 0.62940 ) );
        exchangeRates.add( new DataPoint( 1216850400000d, 0.63480 ) );
        exchangeRates.add( new DataPoint( 1216936800000d, 0.63780 ) );
        exchangeRates.add( new DataPoint( 1217023200000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1217109600000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1217196000000d, 0.63680 ) );
        exchangeRates.add( new DataPoint( 1217282400000d, 0.6360 ) );
        exchangeRates.add( new DataPoint( 1217368800000d, 0.6370 ) );
        exchangeRates.add( new DataPoint( 1217455200000d, 0.64180 ) );
        exchangeRates.add( new DataPoint( 1217541600000d, 0.64110 ) );
        exchangeRates.add( new DataPoint( 1217628000000d, 0.64350 ) );
        exchangeRates.add( new DataPoint( 1217714400000d, 0.64270 ) );
        exchangeRates.add( new DataPoint( 1217800800000d, 0.64270 ) );
        exchangeRates.add( new DataPoint( 1217887200000d, 0.64190 ) );
        exchangeRates.add( new DataPoint( 1217973600000d, 0.64460 ) );
        exchangeRates.add( new DataPoint( 1218060000000d, 0.64680 ) );
        exchangeRates.add( new DataPoint( 1218146400000d, 0.64870 ) );
        exchangeRates.add( new DataPoint( 1218232800000d, 0.65940 ) );
        exchangeRates.add( new DataPoint( 1218319200000d, 0.66660 ) );
        exchangeRates.add( new DataPoint( 1218405600000d, 0.66660 ) );
        exchangeRates.add( new DataPoint( 1218492000000d, 0.66780 ) );
        exchangeRates.add( new DataPoint( 1218578400000d, 0.67120 ) );
        exchangeRates.add( new DataPoint( 1218664800000d, 0.67050 ) );
        exchangeRates.add( new DataPoint( 1218751200000d, 0.67180 ) );
        exchangeRates.add( new DataPoint( 1218837600000d, 0.67840 ) );
        exchangeRates.add( new DataPoint( 1218924000000d, 0.68110 ) );
        exchangeRates.add( new DataPoint( 1219010400000d, 0.68110 ) );
        exchangeRates.add( new DataPoint( 1219096800000d, 0.67940 ) );
        exchangeRates.add( new DataPoint( 1219183200000d, 0.68040 ) );
        exchangeRates.add( new DataPoint( 1219269600000d, 0.67810 ) );
        exchangeRates.add( new DataPoint( 1219356000000d, 0.67560 ) );
        exchangeRates.add( new DataPoint( 1219442400000d, 0.67350 ) );
        exchangeRates.add( new DataPoint( 1219528800000d, 0.67630 ) );
        exchangeRates.add( new DataPoint( 1219615200000d, 0.67620 ) );
        exchangeRates.add( new DataPoint( 1219701600000d, 0.67770 ) );
        exchangeRates.add( new DataPoint( 1219788000000d, 0.68150 ) );
        exchangeRates.add( new DataPoint( 1219874400000d, 0.68020 ) );
        exchangeRates.add( new DataPoint( 1219960800000d, 0.6780 ) );
        exchangeRates.add( new DataPoint( 1220047200000d, 0.67960 ) );
        exchangeRates.add( new DataPoint( 1220133600000d, 0.68170 ) );
        exchangeRates.add( new DataPoint( 1220220000000d, 0.68170 ) );
        exchangeRates.add( new DataPoint( 1220306400000d, 0.68320 ) );
        exchangeRates.add( new DataPoint( 1220392800000d, 0.68770 ) );
        exchangeRates.add( new DataPoint( 1220479200000d, 0.69120 ) );
        exchangeRates.add( new DataPoint( 1220565600000d, 0.69140 ) );
        exchangeRates.add( new DataPoint( 1220652000000d, 0.70090 ) );
        exchangeRates.add( new DataPoint( 1220738400000d, 0.70120 ) );
        exchangeRates.add( new DataPoint( 1220824800000d, 0.7010 ) );
        exchangeRates.add( new DataPoint( 1220911200000d, 0.70050 ) );
    }

    private void addOilPricesData( SeriesHandler oilPrices )
    {
        oilPrices.add( new DataPoint( 1167692400000d, 61.05 ) );
        oilPrices.add( new DataPoint( 1167778800000d, 58.32 ) );
        oilPrices.add( new DataPoint( 1167865200000d, 57.35 ) );
        oilPrices.add( new DataPoint( 1167951600000d, 56.31 ) );
        oilPrices.add( new DataPoint( 1168210800000d, 55.55 ) );
        oilPrices.add( new DataPoint( 1168297200000d, 55.64 ) );
        oilPrices.add( new DataPoint( 1168383600000d, 54.02 ) );
        oilPrices.add( new DataPoint( 1168470000000d, 51.88 ) );
        oilPrices.add( new DataPoint( 1168556400000d, 52.99 ) );
        oilPrices.add( new DataPoint( 1168815600000d, 52.99 ) );
        oilPrices.add( new DataPoint( 1168902000000d, 51.21 ) );
        oilPrices.add( new DataPoint( 1168988400000d, 52.24 ) );
        oilPrices.add( new DataPoint( 1169074800000d, 50.48 ) );
        oilPrices.add( new DataPoint( 1169161200000d, 51.99 ) );
        oilPrices.add( new DataPoint( 1169420400000d, 51.13 ) );
        oilPrices.add( new DataPoint( 1169506800000d, 55.04 ) );
        oilPrices.add( new DataPoint( 1169593200000d, 55.37 ) );
        oilPrices.add( new DataPoint( 1169679600000d, 54.23 ) );
        oilPrices.add( new DataPoint( 1169766000000d, 55.42 ) );
        oilPrices.add( new DataPoint( 1170025200000d, 54.01 ) );
        oilPrices.add( new DataPoint( 1170111600000d, 56.97 ) );
        oilPrices.add( new DataPoint( 1170198000000d, 58.14 ) );
        oilPrices.add( new DataPoint( 1170284400000d, 58.14 ) );
        oilPrices.add( new DataPoint( 1170370800000d, 59.02 ) );
        oilPrices.add( new DataPoint( 1170630000000d, 58.74 ) );
        oilPrices.add( new DataPoint( 1170716400000d, 58.88 ) );
        oilPrices.add( new DataPoint( 1170802800000d, 57.71 ) );
        oilPrices.add( new DataPoint( 1170889200000d, 59.71 ) );
        oilPrices.add( new DataPoint( 1170975600000d, 59.89 ) );
        oilPrices.add( new DataPoint( 1171234800000d, 57.81 ) );
        oilPrices.add( new DataPoint( 1171321200000d, 59.06 ) );
        oilPrices.add( new DataPoint( 1171407600000d, 58.00 ) );
        oilPrices.add( new DataPoint( 1171494000000d, 57.99 ) );
        oilPrices.add( new DataPoint( 1171580400000d, 59.39 ) );
        oilPrices.add( new DataPoint( 1171839600000d, 59.39 ) );
        oilPrices.add( new DataPoint( 1171926000000d, 58.07 ) );
        oilPrices.add( new DataPoint( 1172012400000d, 60.07 ) );
        oilPrices.add( new DataPoint( 1172098800000d, 61.14 ) );
        oilPrices.add( new DataPoint( 1172444400000d, 61.39 ) );
        oilPrices.add( new DataPoint( 1172530800000d, 61.46 ) );
        oilPrices.add( new DataPoint( 1172617200000d, 61.79 ) );
        oilPrices.add( new DataPoint( 1172703600000d, 62.00 ) );
        oilPrices.add( new DataPoint( 1172790000000d, 60.07 ) );
        oilPrices.add( new DataPoint( 1173135600000d, 60.69 ) );
        oilPrices.add( new DataPoint( 1173222000000d, 61.82 ) );
        oilPrices.add( new DataPoint( 1173308400000d, 60.05 ) );
        oilPrices.add( new DataPoint( 1173654000000d, 58.91 ) );
        oilPrices.add( new DataPoint( 1173740400000d, 57.93 ) );
        oilPrices.add( new DataPoint( 1173826800000d, 58.16 ) );
        oilPrices.add( new DataPoint( 1173913200000d, 57.55 ) );
        oilPrices.add( new DataPoint( 1173999600000d, 57.11 ) );
        oilPrices.add( new DataPoint( 1174258800000d, 56.59 ) );
        oilPrices.add( new DataPoint( 1174345200000d, 59.61 ) );
        oilPrices.add( new DataPoint( 1174518000000d, 61.69 ) );
        oilPrices.add( new DataPoint( 1174604400000d, 62.28 ) );
        oilPrices.add( new DataPoint( 1174860000000d, 62.91 ) );
        oilPrices.add( new DataPoint( 1174946400000d, 62.93 ) );
        oilPrices.add( new DataPoint( 1175032800000d, 64.03 ) );
        oilPrices.add( new DataPoint( 1175119200000d, 66.03 ) );
        oilPrices.add( new DataPoint( 1175205600000d, 65.87 ) );
        oilPrices.add( new DataPoint( 1175464800000d, 64.64 ) );
        oilPrices.add( new DataPoint( 1175637600000d, 64.38 ) );
        oilPrices.add( new DataPoint( 1175724000000d, 64.28 ) );
        oilPrices.add( new DataPoint( 1175810400000d, 64.28 ) );
        oilPrices.add( new DataPoint( 1176069600000d, 61.51 ) );
        oilPrices.add( new DataPoint( 1176156000000d, 61.89 ) );
        oilPrices.add( new DataPoint( 1176242400000d, 62.01 ) );
        oilPrices.add( new DataPoint( 1176328800000d, 63.85 ) );
        oilPrices.add( new DataPoint( 1176415200000d, 63.63 ) );
        oilPrices.add( new DataPoint( 1176674400000d, 63.61 ) );
        oilPrices.add( new DataPoint( 1176760800000d, 63.10 ) );
        oilPrices.add( new DataPoint( 1176847200000d, 63.13 ) );
        oilPrices.add( new DataPoint( 1176933600000d, 61.83 ) );
        oilPrices.add( new DataPoint( 1177020000000d, 63.38 ) );
        oilPrices.add( new DataPoint( 1177279200000d, 64.58 ) );
        oilPrices.add( new DataPoint( 1177452000000d, 65.84 ) );
        oilPrices.add( new DataPoint( 1177538400000d, 65.06 ) );
        oilPrices.add( new DataPoint( 1177624800000d, 66.46 ) );
        oilPrices.add( new DataPoint( 1177884000000d, 64.40 ) );
        oilPrices.add( new DataPoint( 1178056800000d, 63.68 ) );
        oilPrices.add( new DataPoint( 1178143200000d, 63.19 ) );
        oilPrices.add( new DataPoint( 1178229600000d, 61.93 ) );
        oilPrices.add( new DataPoint( 1178488800000d, 61.47 ) );
        oilPrices.add( new DataPoint( 1178575200000d, 61.55 ) );
        oilPrices.add( new DataPoint( 1178748000000d, 61.81 ) );
        oilPrices.add( new DataPoint( 1178834400000d, 62.37 ) );
        oilPrices.add( new DataPoint( 1179093600000d, 62.46 ) );
        oilPrices.add( new DataPoint( 1179180000000d, 63.17 ) );
        oilPrices.add( new DataPoint( 1179266400000d, 62.55 ) );
        oilPrices.add( new DataPoint( 1179352800000d, 64.94 ) );
        oilPrices.add( new DataPoint( 1179698400000d, 66.27 ) );
        oilPrices.add( new DataPoint( 1179784800000d, 65.50 ) );
        oilPrices.add( new DataPoint( 1179871200000d, 65.77 ) );
        oilPrices.add( new DataPoint( 1179957600000d, 64.18 ) );
        oilPrices.add( new DataPoint( 1180044000000d, 65.20 ) );
        oilPrices.add( new DataPoint( 1180389600000d, 63.15 ) );
        oilPrices.add( new DataPoint( 1180476000000d, 63.49 ) );
        oilPrices.add( new DataPoint( 1180562400000d, 65.08 ) );
        oilPrices.add( new DataPoint( 1180908000000d, 66.30 ) );
        oilPrices.add( new DataPoint( 1180994400000d, 65.96 ) );
        oilPrices.add( new DataPoint( 1181167200000d, 66.93 ) );
        oilPrices.add( new DataPoint( 1181253600000d, 65.98 ) );
        oilPrices.add( new DataPoint( 1181599200000d, 65.35 ) );
        oilPrices.add( new DataPoint( 1181685600000d, 66.26 ) );
        oilPrices.add( new DataPoint( 1181858400000d, 68.00 ) );
        oilPrices.add( new DataPoint( 1182117600000d, 69.09 ) );
        oilPrices.add( new DataPoint( 1182204000000d, 69.10 ) );
        oilPrices.add( new DataPoint( 1182290400000d, 68.19 ) );
        oilPrices.add( new DataPoint( 1182376800000d, 68.19 ) );
        oilPrices.add( new DataPoint( 1182463200000d, 69.14 ) );
        oilPrices.add( new DataPoint( 1182722400000d, 68.19 ) );
        oilPrices.add( new DataPoint( 1182808800000d, 67.77 ) );
        oilPrices.add( new DataPoint( 1182895200000d, 68.97 ) );
        oilPrices.add( new DataPoint( 1182981600000d, 69.57 ) );
        oilPrices.add( new DataPoint( 1183068000000d, 70.68 ) );
        oilPrices.add( new DataPoint( 1183327200000d, 71.09 ) );
        oilPrices.add( new DataPoint( 1183413600000d, 70.92 ) );
        oilPrices.add( new DataPoint( 1183586400000d, 71.81 ) );
        oilPrices.add( new DataPoint( 1183672800000d, 72.81 ) );
        oilPrices.add( new DataPoint( 1183932000000d, 72.19 ) );
        oilPrices.add( new DataPoint( 1184018400000d, 72.56 ) );
        oilPrices.add( new DataPoint( 1184191200000d, 72.50 ) );
        oilPrices.add( new DataPoint( 1184277600000d, 74.15 ) );
        oilPrices.add( new DataPoint( 1184623200000d, 75.05 ) );
        oilPrices.add( new DataPoint( 1184796000000d, 75.92 ) );
        oilPrices.add( new DataPoint( 1184882400000d, 75.57 ) );
        oilPrices.add( new DataPoint( 1185141600000d, 74.89 ) );
        oilPrices.add( new DataPoint( 1185228000000d, 73.56 ) );
        oilPrices.add( new DataPoint( 1185314400000d, 75.57 ) );
        oilPrices.add( new DataPoint( 1185400800000d, 74.95 ) );
        oilPrices.add( new DataPoint( 1185487200000d, 76.83 ) );
        oilPrices.add( new DataPoint( 1185832800000d, 78.21 ) );
        oilPrices.add( new DataPoint( 1185919200000d, 76.53 ) );
        oilPrices.add( new DataPoint( 1186005600000d, 76.86 ) );
        oilPrices.add( new DataPoint( 1186092000000d, 76.00 ) );
        oilPrices.add( new DataPoint( 1186437600000d, 71.59 ) );
        oilPrices.add( new DataPoint( 1186696800000d, 71.47 ) );
        oilPrices.add( new DataPoint( 1186956000000d, 71.62 ) );
        oilPrices.add( new DataPoint( 1187042400000d, 71.00 ) );
        oilPrices.add( new DataPoint( 1187301600000d, 71.98 ) );
        oilPrices.add( new DataPoint( 1187560800000d, 71.12 ) );
        oilPrices.add( new DataPoint( 1187647200000d, 69.47 ) );
        oilPrices.add( new DataPoint( 1187733600000d, 69.26 ) );
        oilPrices.add( new DataPoint( 1187820000000d, 69.83 ) );
        oilPrices.add( new DataPoint( 1187906400000d, 71.09 ) );
        oilPrices.add( new DataPoint( 1188165600000d, 71.73 ) );
        oilPrices.add( new DataPoint( 1188338400000d, 73.36 ) );
        oilPrices.add( new DataPoint( 1188511200000d, 74.04 ) );
        oilPrices.add( new DataPoint( 1188856800000d, 76.30 ) );
        oilPrices.add( new DataPoint( 1189116000000d, 77.49 ) );
        oilPrices.add( new DataPoint( 1189461600000d, 78.23 ) );
        oilPrices.add( new DataPoint( 1189548000000d, 79.91 ) );
        oilPrices.add( new DataPoint( 1189634400000d, 80.09 ) );
        oilPrices.add( new DataPoint( 1189720800000d, 79.10 ) );
        oilPrices.add( new DataPoint( 1189980000000d, 80.57 ) );
        oilPrices.add( new DataPoint( 1190066400000d, 81.93 ) );
        oilPrices.add( new DataPoint( 1190239200000d, 83.32 ) );
        oilPrices.add( new DataPoint( 1190325600000d, 81.62 ) );
        oilPrices.add( new DataPoint( 1190584800000d, 80.95 ) );
        oilPrices.add( new DataPoint( 1190671200000d, 79.53 ) );
        oilPrices.add( new DataPoint( 1190757600000d, 80.30 ) );
        oilPrices.add( new DataPoint( 1190844000000d, 82.88 ) );
        oilPrices.add( new DataPoint( 1190930400000d, 81.66 ) );
        oilPrices.add( new DataPoint( 1191189600000d, 80.24 ) );
        oilPrices.add( new DataPoint( 1191276000000d, 80.05 ) );
        oilPrices.add( new DataPoint( 1191362400000d, 79.94 ) );
        oilPrices.add( new DataPoint( 1191448800000d, 81.44 ) );
        oilPrices.add( new DataPoint( 1191535200000d, 81.22 ) );
        oilPrices.add( new DataPoint( 1191794400000d, 79.02 ) );
        oilPrices.add( new DataPoint( 1191880800000d, 80.26 ) );
        oilPrices.add( new DataPoint( 1191967200000d, 80.30 ) );
        oilPrices.add( new DataPoint( 1192053600000d, 83.08 ) );
        oilPrices.add( new DataPoint( 1192140000000d, 83.69 ) );
        oilPrices.add( new DataPoint( 1192399200000d, 86.13 ) );
        oilPrices.add( new DataPoint( 1192485600000d, 87.61 ) );
        oilPrices.add( new DataPoint( 1192572000000d, 87.40 ) );
        oilPrices.add( new DataPoint( 1192658400000d, 89.47 ) );
        oilPrices.add( new DataPoint( 1192744800000d, 88.60 ) );
        oilPrices.add( new DataPoint( 1193004000000d, 87.56 ) );
        oilPrices.add( new DataPoint( 1193090400000d, 87.56 ) );
        oilPrices.add( new DataPoint( 1193176800000d, 87.10 ) );
        oilPrices.add( new DataPoint( 1193263200000d, 91.86 ) );
        oilPrices.add( new DataPoint( 1193612400000d, 93.53 ) );
        oilPrices.add( new DataPoint( 1193698800000d, 94.53 ) );
        oilPrices.add( new DataPoint( 1193871600000d, 95.93 ) );
        oilPrices.add( new DataPoint( 1194217200000d, 93.98 ) );
        oilPrices.add( new DataPoint( 1194303600000d, 96.37 ) );
        oilPrices.add( new DataPoint( 1194476400000d, 95.46 ) );
        oilPrices.add( new DataPoint( 1194562800000d, 96.32 ) );
        oilPrices.add( new DataPoint( 1195081200000d, 93.43 ) );
        oilPrices.add( new DataPoint( 1195167600000d, 95.10 ) );
        oilPrices.add( new DataPoint( 1195426800000d, 94.64 ) );
        oilPrices.add( new DataPoint( 1195513200000d, 95.10 ) );
        oilPrices.add( new DataPoint( 1196031600000d, 97.70 ) );
        oilPrices.add( new DataPoint( 1196118000000d, 94.42 ) );
        oilPrices.add( new DataPoint( 1196204400000d, 90.62 ) );
        oilPrices.add( new DataPoint( 1196290800000d, 91.01 ) );
        oilPrices.add( new DataPoint( 1196377200000d, 88.71 ) );
        oilPrices.add( new DataPoint( 1196636400000d, 88.32 ) );
        oilPrices.add( new DataPoint( 1196809200000d, 90.23 ) );
        oilPrices.add( new DataPoint( 1196982000000d, 88.28 ) );
        oilPrices.add( new DataPoint( 1197241200000d, 87.86 ) );
        oilPrices.add( new DataPoint( 1197327600000d, 90.02 ) );
        oilPrices.add( new DataPoint( 1197414000000d, 92.25 ) );
        oilPrices.add( new DataPoint( 1197586800000d, 90.63 ) );
        oilPrices.add( new DataPoint( 1197846000000d, 90.63 ) );
        oilPrices.add( new DataPoint( 1197932400000d, 90.49 ) );
        oilPrices.add( new DataPoint( 1198018800000d, 91.24 ) );
        oilPrices.add( new DataPoint( 1198105200000d, 91.06 ) );
        oilPrices.add( new DataPoint( 1198191600000d, 90.49 ) );
        oilPrices.add( new DataPoint( 1198710000000d, 96.62 ) );
        oilPrices.add( new DataPoint( 1198796400000d, 96.00 ) );
        oilPrices.add( new DataPoint( 1199142000000d, 99.62 ) );
        oilPrices.add( new DataPoint( 1199314800000d, 99.18 ) );
        oilPrices.add( new DataPoint( 1199401200000d, 95.09 ) );
        oilPrices.add( new DataPoint( 1199660400000d, 96.33 ) );
        oilPrices.add( new DataPoint( 1199833200000d, 95.67 ) );
        oilPrices.add( new DataPoint( 1200351600000d, 91.90 ) );
        oilPrices.add( new DataPoint( 1200438000000d, 90.84 ) );
        oilPrices.add( new DataPoint( 1200524400000d, 90.13 ) );
        oilPrices.add( new DataPoint( 1200610800000d, 90.57 ) );
        oilPrices.add( new DataPoint( 1200956400000d, 89.21 ) );
        oilPrices.add( new DataPoint( 1201042800000d, 86.99 ) );
        oilPrices.add( new DataPoint( 1201129200000d, 89.85 ) );
        oilPrices.add( new DataPoint( 1201474800000d, 90.99 ) );
        oilPrices.add( new DataPoint( 1201561200000d, 91.64 ) );
        oilPrices.add( new DataPoint( 1201647600000d, 92.33 ) );
        oilPrices.add( new DataPoint( 1201734000000d, 91.75 ) );
        oilPrices.add( new DataPoint( 1202079600000d, 90.02 ) );
        oilPrices.add( new DataPoint( 1202166000000d, 88.41 ) );
        oilPrices.add( new DataPoint( 1202252400000d, 87.14 ) );
        oilPrices.add( new DataPoint( 1202338800000d, 88.11 ) );
        oilPrices.add( new DataPoint( 1202425200000d, 91.77 ) );
        oilPrices.add( new DataPoint( 1202770800000d, 92.78 ) );
        oilPrices.add( new DataPoint( 1202857200000d, 93.27 ) );
        oilPrices.add( new DataPoint( 1202943600000d, 95.46 ) );
        oilPrices.add( new DataPoint( 1203030000000d, 95.46 ) );
        oilPrices.add( new DataPoint( 1203289200000d, 101.74 ) );
        oilPrices.add( new DataPoint( 1203462000000d, 98.81 ) );
        oilPrices.add( new DataPoint( 1203894000000d, 100.88 ) );
        oilPrices.add( new DataPoint( 1204066800000d, 99.64 ) );
        oilPrices.add( new DataPoint( 1204153200000d, 102.59 ) );
        oilPrices.add( new DataPoint( 1204239600000d, 101.84 ) );
        oilPrices.add( new DataPoint( 1204498800000d, 99.52 ) );
        oilPrices.add( new DataPoint( 1204585200000d, 99.52 ) );
        oilPrices.add( new DataPoint( 1204671600000d, 104.52 ) );
        oilPrices.add( new DataPoint( 1204758000000d, 105.47 ) );
        oilPrices.add( new DataPoint( 1204844400000d, 105.15 ) );
        oilPrices.add( new DataPoint( 1205103600000d, 108.75 ) );
        oilPrices.add( new DataPoint( 1205276400000d, 109.92 ) );
        oilPrices.add( new DataPoint( 1205362800000d, 110.33 ) );
        oilPrices.add( new DataPoint( 1205449200000d, 110.21 ) );
        oilPrices.add( new DataPoint( 1205708400000d, 105.68 ) );
        oilPrices.add( new DataPoint( 1205967600000d, 101.84 ) );
        oilPrices.add( new DataPoint( 1206313200000d, 100.86 ) );
        oilPrices.add( new DataPoint( 1206399600000d, 101.22 ) );
        oilPrices.add( new DataPoint( 1206486000000d, 105.90 ) );
        oilPrices.add( new DataPoint( 1206572400000d, 107.58 ) );
        oilPrices.add( new DataPoint( 1206658800000d, 105.62 ) );
        oilPrices.add( new DataPoint( 1206914400000d, 101.58 ) );
        oilPrices.add( new DataPoint( 1207000800000d, 100.98 ) );
        oilPrices.add( new DataPoint( 1207173600000d, 103.83 ) );
        oilPrices.add( new DataPoint( 1207260000000d, 106.23 ) );
        oilPrices.add( new DataPoint( 1207605600000d, 108.50 ) );
        oilPrices.add( new DataPoint( 1207778400000d, 110.11 ) );
        oilPrices.add( new DataPoint( 1207864800000d, 110.14 ) );
        oilPrices.add( new DataPoint( 1208210400000d, 113.79 ) );
        oilPrices.add( new DataPoint( 1208296800000d, 114.93 ) );
        oilPrices.add( new DataPoint( 1208383200000d, 114.86 ) );
        oilPrices.add( new DataPoint( 1208728800000d, 117.48 ) );
        oilPrices.add( new DataPoint( 1208815200000d, 118.30 ) );
        oilPrices.add( new DataPoint( 1208988000000d, 116.06 ) );
        oilPrices.add( new DataPoint( 1209074400000d, 118.52 ) );
        oilPrices.add( new DataPoint( 1209333600000d, 118.75 ) );
        oilPrices.add( new DataPoint( 1209420000000d, 113.46 ) );
        oilPrices.add( new DataPoint( 1209592800000d, 112.52 ) );
        oilPrices.add( new DataPoint( 1210024800000d, 121.84 ) );
        oilPrices.add( new DataPoint( 1210111200000d, 123.53 ) );
        oilPrices.add( new DataPoint( 1210197600000d, 123.69 ) );
        oilPrices.add( new DataPoint( 1210543200000d, 124.23 ) );
        oilPrices.add( new DataPoint( 1210629600000d, 125.80 ) );
        oilPrices.add( new DataPoint( 1210716000000d, 126.29 ) );
        oilPrices.add( new DataPoint( 1211148000000d, 127.05 ) );
        oilPrices.add( new DataPoint( 1211320800000d, 129.07 ) );
        oilPrices.add( new DataPoint( 1211493600000d, 132.19 ) );
        oilPrices.add( new DataPoint( 1211839200000d, 128.85 ) );
        oilPrices.add( new DataPoint( 1212357600000d, 127.76 ) );
        oilPrices.add( new DataPoint( 1212703200000d, 138.54 ) );
        oilPrices.add( new DataPoint( 1212962400000d, 136.80 ) );
        oilPrices.add( new DataPoint( 1213135200000d, 136.38 ) );
        oilPrices.add( new DataPoint( 1213308000000d, 134.86 ) );
        oilPrices.add( new DataPoint( 1213653600000d, 134.01 ) );
        oilPrices.add( new DataPoint( 1213740000000d, 136.68 ) );
        oilPrices.add( new DataPoint( 1213912800000d, 135.65 ) );
        oilPrices.add( new DataPoint( 1214172000000d, 134.62 ) );
        oilPrices.add( new DataPoint( 1214258400000d, 134.62 ) );
        oilPrices.add( new DataPoint( 1214344800000d, 134.62 ) );
        oilPrices.add( new DataPoint( 1214431200000d, 139.64 ) );
        oilPrices.add( new DataPoint( 1214517600000d, 140.21 ) );
        oilPrices.add( new DataPoint( 1214776800000d, 140.00 ) );
        oilPrices.add( new DataPoint( 1214863200000d, 140.97 ) );
        oilPrices.add( new DataPoint( 1214949600000d, 143.57 ) );
        oilPrices.add( new DataPoint( 1215036000000d, 145.29 ) );
        oilPrices.add( new DataPoint( 1215381600000d, 141.37 ) );
        oilPrices.add( new DataPoint( 1215468000000d, 136.04 ) );
        oilPrices.add( new DataPoint( 1215727200000d, 146.40 ) );
        oilPrices.add( new DataPoint( 1215986400000d, 145.18 ) );
        oilPrices.add( new DataPoint( 1216072800000d, 138.74 ) );
        oilPrices.add( new DataPoint( 1216159200000d, 134.60 ) );
        oilPrices.add( new DataPoint( 1216245600000d, 129.29 ) );
        oilPrices.add( new DataPoint( 1216332000000d, 130.65 ) );
        oilPrices.add( new DataPoint( 1216677600000d, 127.95 ) );
        oilPrices.add( new DataPoint( 1216850400000d, 127.95 ) );
        oilPrices.add( new DataPoint( 1217282400000d, 122.19 ) );
        oilPrices.add( new DataPoint( 1217455200000d, 124.08 ) );
        oilPrices.add( new DataPoint( 1217541600000d, 125.10 ) );
        oilPrices.add( new DataPoint( 1217800800000d, 121.41 ) );
        oilPrices.add( new DataPoint( 1217887200000d, 119.17 ) );
        oilPrices.add( new DataPoint( 1217973600000d, 118.58 ) );
        oilPrices.add( new DataPoint( 1218060000000d, 120.02 ) );
        oilPrices.add( new DataPoint( 1218405600000d, 114.45 ) );
        oilPrices.add( new DataPoint( 1218492000000d, 113.01 ) );
        oilPrices.add( new DataPoint( 1218578400000d, 116.00 ) );
        oilPrices.add( new DataPoint( 1218751200000d, 113.77 ) );
        oilPrices.add( new DataPoint( 1219010400000d, 112.87 ) );
        oilPrices.add( new DataPoint( 1219096800000d, 114.53 ) );
        oilPrices.add( new DataPoint( 1219269600000d, 114.98 ) );
        oilPrices.add( new DataPoint( 1219356000000d, 114.98 ) );
        oilPrices.add( new DataPoint( 1219701600000d, 116.27 ) );
        oilPrices.add( new DataPoint( 1219788000000d, 118.15 ) );
        oilPrices.add( new DataPoint( 1219874400000d, 115.59 ) );
        oilPrices.add( new DataPoint( 1219960800000d, 115.46 ) );
        oilPrices.add( new DataPoint( 1220306400000d, 109.71 ) );
        oilPrices.add( new DataPoint( 1220392800000d, 109.35 ) );
        oilPrices.add( new DataPoint( 1220565600000d, 106.23 ) );
        oilPrices.add( new DataPoint( 1220824800000d, 106.34 ) );
    }

    public String getName()
    {
        return "Multiple Axes";
    }

}
